
package controlador;

import java.io.IOException;
import java.io.ObjectInputStream;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;
import modelo.*;

/**
 * Clase heredera de thread que se encarga de escuchar los mensajes entrantes.
 * @author Manuel Figueroa Recio
 */
public class HiloEscucha implements Runnable {
    private ObjectInputStream entrada;
    private Cliente cliente; //cliente padre no se si tendra uso aun.
    private Thread hilo;
    private Mensaje mensaje;
    private boolean activado = true; // boolean para causar la muerte natural del thread

    public HiloEscucha(Cliente padre,ObjectInputStream entrada){
            this.cliente = padre; // enlace
            this.entrada =  entrada;
    }
    
    public void iniciar(){
        hilo = new Thread(this);
        hilo.start();
    }
    public void run() {
        while (activado){
            try {
                mensaje = (Mensaje) entrada.readObject();
                //tratar

                //test
                System.out.println("<"+mensaje.getRemitente()+">"+mensaje.getMensaje());

            } catch (IOException ex) {
                Logger.getLogger(HiloEscucha.class.getName()).log(Level.SEVERE, null, ex);
            } catch (ClassNotFoundException ex) {
                Logger.getLogger(HiloEscucha.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }

    public void pararHilo(){
        activado = false;
    }
}
